/*
 * StatusLabel.java
 *
 *  created: 8.11.2011
 *  charset: UTF-8
 *  license: MIT (X11) (See LICENSE file for full license)
 */
package cz.mp.k3bg.gui.component;

import cz.mp.k3bg.Images;
import java.awt.Color;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JLabel;

/** 
 * {@code StatusLabel} je popisek s ikonou značící nějaký stav, jako
 * je chyba, varování, atd.
 * 
 * @author Martin Pokorný
 * @version 0.1
 * @see StatusPanel
 */
public class StatusLabel extends JLabel {
   
	/**
	 *
	 */
	public enum Type {
		NOTE(Images.getImage(Images.BLANK)),
		TIP(Images.getImage(Images.BULB)),
		WARNING(Images.getImage(Images.WARNING)),
		ERROR(Images.getImage(Images.ERROR)),
        OK(Images.getImage(Images.OK)),
        INFO(Images.getImage(Images.INFO)),
        ;
			
		// ----
			
		private ImageIcon icon = null;

		private Type(ImageIcon icon) {
			this.icon = icon;
		}
	
		public ImageIcon getIcon() {
			return icon;
		}		
	}	// Type
		
	// -----
	
	/**
	 * 
	 * @see #setText(String, Type)
	 * @see #setText(String, Color, Icon)
	 */
	public StatusLabel() {
		super();
	}

	@Override
	public void setText(String text) {
		super.setText(text);
	}
	
	/**
	 * 
	 * @param text
	 * @param type  StatusLabel.Type
	 */
	public void setText(String text, StatusLabel.Type type) {
		setText(text, type.getIcon());
	}
	
	/**
	 * 
	 * @param text
	 * @param bgColor  akceptuje <code>null</code> (= výchozí hodnota)
	 * @param icon  akceptuje <code>null</code> (= žádná ikona) 
	 */
	public void setText(String text, Icon icon) {
		setText(text);
		setIcon(icon);
	}
	
	/**
	 * Resetuje popisek. 
	 */
	public void clear() {
		setText("", (Icon)null);
	}
    
}	// StatusLabel
